## MVC

Это задание напрямую не связано с темой урока, но мы закрепим уже пройденный материал и продолжим создавать CRUD-сущности.

В предыдущих заданиях мы делали создание сущности, вывод списка и просмотр конкретной сущности, поэтому в этом задании они уже написаны. Нам же предстоит добавить в приложение редактирование сущности.

### Ссылки

* [Методы работы с контекстом](https://javalin.io/documentation#context)

### src/main/java/exercise/controller/PostsController.java

Реализуйте контроллер с методами, необходимыми для вывода формы редактирования и обновления поста.

При обновлении поста, данные от пользователей должны пройти валидацию по тем же правилам, что и при создании. Если данные при редактировании не прошли валидацию, должна отобразиться форма редактирования с полями, заполненными данными. При успешном обновлении нужно сделать редирект на страницу списка постов.

### src/main/java/exercise/dto/posts/EditPostPage.java

Реализуйте дата-класс для передачи данных поста в шаблон с формой редактирования.

### src/main/java/exercise/util/NamedRoutes.java

Добавьте в класс `NamedRoutes` методы для именованных маршрутов отображения формы редактирования и обновления пользователей.

### src/main/java/exercise/App.java

Добавьте в приложение роутинг для редактирования постов.

Обычно обновление сущности принято делать с помощью глаголов *PATCH/PUT*. Но здесь ситуация другая — мы не можем отправлять PATCH/PUT запросы из HTML-формы. Поэтому в этом упражнении сделайте обновление сущности через POST-запрос на адрес */posts/{id}*. Так обновление будет работать в браузере.

### src/main/jte/posts/show.jte

В шаблон просмотра конкретного поста добавьте ссылку на редактирование поста.

### src/main/jte/posts/edit.jte

Реализуйте форму редактирования поста и добавьте вывод ошибок валидации.

### Подсказки

* Ориентируйтесь на методы для добавления нового поста
* Если хотите сделать красивый вывод в шаблонах, используйте классы Bootstrap
* В шаблоне с формой редактирования поста используйте идентификатор поста, чтобы сформировать ссылку
